#ifndef FILTER_H
#define FILTER_H
#include "dsp.h"
#include "cmplx.h"

#define		FILTER_ERROR	0
#define		FILTER_OK		1

// Filter type approximation 
#define		BUTTER			0x0000	// Butterworth filter
#define		CHEBY1			0x0001	// Chebychev type 1 filter 
#define		CHEBY2			0x0002	// Chebychev type 2 filter 
#define		ELLIP			0x0004	// Elliptic   filter

// Filter band type
#define		LOW			0x0100 // lowpass  filter
#define		HIGH			0x0200 // highpass filter
#define		BPASS			0x0300 // bandpass filter
#define		BSTOP			0x0400 // bandstop filter



// normalized Batterworth lowpass filter calculation 
long butterNorm(typedsp, long, typedsp*, typedsp*);

// normalized Chebychev type 1 lowpass filter calculation 
long cheby1Norm(typedsp, long, typedsp*, typedsp*);

// normalized Chebychev type 2 lowpass filter calculation 
long cheby2Norm(typedsp, long, typedsp*, typedsp*);

// real convolution
long conv( typedsp*, long, typedsp*, long, typedsp*);	

// complex convolution
long convCmplx(complex*, long, complex*, long, complex*);	

// complex frequency response calculation
long freqs(typedsp*, long, typedsp*, long, typedsp*, long, complex*);

	



#endif

